
在linux操作系统中，最初只有.tar.gz的打包文件，用户必须编译每个他想在GNU/Linux上运行的软件。用户们普遍认为系统很有必要提供一种方法来管理这些安 装在机器上的软件包，当Debian诞生时，这样一个管理工具也就应运而生，它被命名为dpkg。从而著名的“package”概念第一次出现在 GNU/Linux系统中。

ubuntu正是基于Debian的linux发行版。因此它的包管理工具也是dpkg。广大linux迷和GNU/Linux制作者认为，他们需要一个快速、实用、高效的方法来安装软件包，当软件包更新时，这个工具应该能自动管理关联文件和维护已有配置文件，于是APT（Advanced Packaging Tool）诞生了。APT后来还被Conectiva改造用来管理rpm，并被其它Linux发行版本采用为它们的软件包管理工具。

上期中（即桃源第二期八月刊中）网络工程系07级4班涂建超所作《Ubuntu 8.04 软件源的配置》一文中，已给出软件源的基本配置。笔者认为在大部分校友以校园网作为接入网络方式的情况下，很有必要给出详细的软件源配置方法，在众多的软件源中作出筛选，以得到快速，稳定而且完整的软件源。

本文的宗旨正是给出一个简单，实用的方法来选择最佳镜像发布站点加入source.list文件中。所遵循的原则即是：KISS（Kepp It Simple，Stupid）

一个新用户经常问到的问题是：“该将哪个Debian镜像发布站点加入source.list文件？”。有很多方法来选择镜像发布站点，专家们可能会写一个脚本去测试不同站点的ping time，不过有一个现成的程序可以帮你：netselect。 

1） 安装netselect
\begin{shaded}
\begin{verbatim}
sudo apt－get install netselect
\end{verbatim}
\end{shaded}

2） select不带参数运行时会显示它的帮助信息。运行它时加上以空格分隔的镜像主机列表，它会返回一个分值和列表中的一个主机名。这个分值通过评估ping time和hops number（一个网络请求报文到达目标主机所经过的转发主机的个数）来得出。它与镜像站点预计下载速度成反比，即数值越小越好。返回的主机名是主机列表中得分最低的那个（查看列表中所有主机的得分情况可使用-vv选项）。看下例： 
\begin{shaded}
\begin{verbatim}
winelder@wophochess:~$netselect ftp.debian.org http.us.debian.org 
ftp.at.debian.org download.unesp.br ftp.debian.org.br
365 ftp.debian.org.br
\end{verbatim}
\end{shaded}

它表示，在netselect后列出的所有主机中，ftp.debian.org.br是下载速度最快的主机，其得分为365。那么把它加入到sources.list中吧！（\texttt{sudo gedit /etc/apt/sources.list....}）

3) 从0.3版开始，netselect软件包包含了netselect-apt脚本，它使上述操作自动完成。只需将发布目录树做为参数（默认为 stable）输入，sources.list文件就会生成速度最快的main和non-US镜像站点列表，并保存在当前目录下。下面的例子生成一个包含 stable发布镜像站点列表的sources.list 
\begin{shaded}
\begin{verbatim}
winelder@wophochess:~$ ls sources.list 
ls: sources.list: File or directory not found 
winelder@wophochess:~$ netselect-apt stable 
(...) 
winelder@wophochess:~$ ls -l sources.list 
sources.list 
winelder@wophochess:~$ 
\end{verbatim}
\end{shaded}

(记住：sources.list生成在当前目录下，必须将其移至/etc/apt目录。)

\begin{flushright}
  \hyperref[content]{回到目录}
\end{flushright}